// popper弹框定位
import { createPopper, detectOverflow } from "@popperjs/core"
function hasClass(el, cls) {
	if (!el || !cls) return false
	if (cls.indexOf(" ") !== -1)
		throw new Error("className should not contain space.")
	if (el.classList) {
		return el.classList.contains(cls)
	} else {
		return (" " + el.className + " ").indexOf(" " + cls + " ") > -1
	}
}
function addClass(el, cls) {
	if (!el) return
	var curClass = el.className
	var classes = (cls || "").split(" ")

	for (var i = 0, j = classes.length; i < j; i++) {
		var clsName = classes[i]
		if (!clsName) continue

		if (el.classList) {
			el.classList.add(clsName)
		} else if (!hasClass(el, clsName)) {
			curClass += " " + clsName
		}
	}
	if (!el.classList) {
		el.setAttribute("class", curClass)
	}
}
function removeClass(el, cls) {
	if (!el || !cls) return
	var classes = cls.split(" ")
	var curClass = " " + el.className + " "

	for (var i = 0, j = classes.length; i < j; i++) {
		var clsName = classes[i]
		if (!clsName) continue

		if (el.classList) {
			el.classList.remove(clsName)
		} else if (hasClass(el, clsName)) {
			curClass = curClass.replace(" " + clsName + " ", " ")
		}
	}
	if (!el.classList) {
		el.setAttribute("class", trim(curClass))
	}
}
function trim(string) {
	return (string || "").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, "")
}
export default {
	formatProps(oldValue, newValue) {
		return { ...oldValue, ...newValue }
	},
	addClass,
	removeClass,
	createPopper,
    detectOverflow,
    trim
}
